home *** CD-ROM | disk | FTP | other *** search
/ PC Answers 2002 January / PC Answers January 2002.7z / PC Answers January 2002.bin / graphics / freepixl / _SETUP.1 / Sun2.pxl < prev    next >
Text File  |  2001-01-27  |  11KB  |  392 lines

  1. Initialize:
  2.     SetColorPalette(GENERATE)
  3.     Title$ = "Supernova"
  4.     UseCaption(Title$)
  5.     UseCoordinates(PIXEL)
  6.     UseBackGround(TRANSPARENT,0,0,0)
  7.     InfoMenu(REMOVE)
  8.     WaitInput(100)  {let NT and 95 catch up}
  9.     SetMenu()
  10.     DrawBackGround
  11.     WinLocate(Title$,200,200,720,550,Res)
  12.     SetCtrlMouse(0,0,400,300,Leave_1,X,Y)
  13.     SetMouse(0,0,400,300,Test,X,Y)
  14.     SetRightMouse(0,0,400,300,About,X,Y)
  15.  
  16.     GetCPUInfo(CPUtype,NumberOfCPUs,Speed, SerialNumberLo, SerialNumberHi)
  17.     If CPUtype = 586
  18.         GoFast = 0
  19.     Else
  20.         GoFast = 1
  21.     Endif
  22.     
  23.     UseFont("Arial",9,19,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  24.     DrawText(80,60,"Click left mouse for the Show...")
  25.     DrawText(80,80,"Click right mouse for information...")
  26.     DrawText(80,100,"Click control-left mouse to quit...")
  27.  
  28.     Str(CPUtype,CPUtype$)
  29.     CPUtype$ = "CPU type " + CPUtype$ + " detected."
  30.     UseFont("Arial",7,15,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  31.     DrawText(80,140,CPUtype$)
  32.  
  33. Wait_for_Input:
  34.     WaitInput()
  35.  
  36.  
  37. About:
  38.     AboutUser("Supernova program", "Sample program written with PiXCL 5.0",
  39. "This program draws a dynamic window showing the 
  40. animation capabilities of PiXCL. The Supernova
  41. image is ⌐ 1996-2000 VYSOR Integration Inc.")
  42.  
  43.     Goto Wait_for_Input
  44.  
  45. Test:    SetMouse() SetRightMouse()
  46.     DrawBackGround
  47.     WAVPlaySound("..\samples\galaxy.wav",ASYNC,FILENAME,Res)
  48.     If Res= 0 Then MessageBox(OK,1,INFORMATION,"WAV returned 0","PiXCL DEBUG",Res)
  49.     GoSub Draw_Bl_Ell
  50.     GoSub South_cross
  51.     GoSub Draw_Little_Bang    
  52.     GoSub Draw_Red_Eclipse
  53.  
  54.     X1 = 380 Y1 = 70  X2 = 400   Y2 = 90 Terminate = 416
  55.     Red = 255 Green = 255 Blue = 255
  56.     GoSub Draw_Tiny_Bang
  57.     GoSub Draw_Little_Bang    
  58.  
  59.     X1 = 380 Y1 = 70  X2 = 400   Y2 = 90 Terminate = 416
  60.     Red = 255 Green = 255 Blue = 255
  61.     GoSub Draw_Tiny_Bang
  62.  
  63.     WaitInput(200)
  64.     GoSub Draw_Yellow_Eclipse
  65.     WAVPlaySound("..\samples\warp.wav",ASYNC,FILENAME,Res)
  66.     GoSub Satelite
  67.     GoSub Draw_White_Eclipse
  68.     GoSub Draw_White_Eclipse
  69.     GoSub DrawTitle
  70. Test_1:
  71.     GoSub Draw_Red_Eclipse
  72.     GoSub Draw_Yellow_Eclipse
  73.     GoSub Draw_White_Eclipse
  74.     GoSub Draw_Red_Eclipse
  75.     GoSub Draw_Yellow_Eclipse
  76.     GoSub Draw_White_Eclipse
  77.     WaitInput(600)
  78.     Goto Leave
  79. Leave_1:
  80.     FastExit  = 1
  81. Leave:
  82.     If FastExit  <> 1 
  83.         WAVPlaySound("..\samples\missile3.wav",ASYNC,FILENAME,Res)
  84.         GoSub Draw_Mesh_Bang  
  85.         GoSub Draw_Mesh_Bang_in_White
  86.     Else
  87.        End
  88.     Endif
  89.     WaitInput(1000)
  90.     {WAVPlaySound("..\samples\zone.wav",SYNC,FILENAME,Res)}
  91.     GoSub Draw_Big_Bang
  92.     WaitInput(1400)
  93.     GoSub Draw_Little_Bang    
  94.     X1 = 380 Y1 = 70  X2 = 400   Y2 = 90 Terminate = 416
  95.     Red = 255 Green = 255 Blue = 255
  96.     GoSub Draw_Tiny_Bang
  97.     GoSub DrawTitle
  98.  
  99.     MessageBox(YESNO,2,QUESTION,"Want to see this again ?",
  100.     "PiXCL is a true programming language !",Res)
  101.     If Res = 1 Then Goto Test
  102.     End
  103.  
  104. {======================================================================}
  105. Draw_Little_Bang:
  106.     UsePen(SOLID,1,255,255,255)
  107.     UseBrush(SOLID,255,255,224)
  108.     DrawEllipse(380,70,400,90)
  109.     UseBrush(NULL,0,0,0)
  110.     X1 = 380 Y1 = 70  X2 = 400   Y2 = 90
  111.     Red = 255 Green = 255 Blue = 255
  112. Little_Bang_Loop_W:
  113.     DrawEllipse(X1,Y1,X2,Y2)
  114.     X1 = X1 - 1      Y1 = Y1 - 1  
  115.     X2 = X2 + 1      Y2 = Y2 + 1
  116.     Red = Red - 16   Green = Green - 16 Blue = Blue - 16
  117.     UsePen(SOLID,1,Red,Green,Blue)
  118.     WaitInput(1)
  119.     If X2 <= 428 Then Goto Little_Bang_Loop_W
  120.     
  121.     Return
  122.  
  123. Draw_Mesh_Bang:
  124.     Flag = 0
  125.     UsePen(SOLID,1,0,0,0)
  126.     UseBrush(NULL,255,255,255)
  127.     DrawEllipse(20,20,80,80)
  128.     X1 = 19 Y1 = 19  X2 = 81   Y2 = 81
  129.     Incr = 3
  130. Test_Loop_MB:
  131.     DrawEllipse(X1,Y1,X2,Y2)    
  132.     X1 = X1 - Incr      Y1 = Y1 - Incr  
  133.     X2 = X2 + Incr      Y2 = Y2 + Incr
  134.     If X2 < 610 Then Goto Test_Loop_MB
  135.     Return
  136.  
  137. Draw_Mesh_Bang_in_White:
  138.     Flag = 0
  139.     UsePen(SOLID,1,0,0,255)
  140.     UseBrush(NULL,255,255,255)
  141.     DrawEllipse(20,20,80,80)
  142.     X1 = 19 Y1 = 19  X2 = 81   Y2 = 81
  143.     Incr = 9
  144. Test_Loop_MBW:
  145.     DrawEllipse(X1,Y1,X2,Y2)    
  146.     X1 = X1 - Incr      Y1 = Y1 - Incr  
  147.     X2 = X2 + Incr      Y2 = Y2 + Incr
  148.     If X2 < 610 Then Goto Test_Loop_MBW
  149.     Return
  150.  
  151.  
  152.     Return
  153. {======================================================================}
  154. Draw_Big_Bang:
  155.     WinGetClientRect("",cx1,cy1,cx2,cy2)
  156.     Flag = 0
  157.     UsePen(SOLID,2,255,255,255)
  158.     UseBrush(SOLID,255,255,255)
  159.     DrawEllipse(20,20,80,80)
  160.     X1 = 20 Y1 = 20  X2 = 80   Y2 = 80
  161.     Red = 255 Green = 255 Blue = 255
  162.     DecR = 1 DecG = 1 DecB = 1
  163.     Incr = 2
  164. Test_Loop_BB:
  165.     If GoFast <> 1 Then WaitInput(1)
  166.     DrawEllipse(X1,Y1,X2,Y2)
  167.     X1 = X1 - Incr      Y1 = Y1 - Incr  
  168.     X2 = X2 + Incr      Y2 = Y2 + Incr
  169.     J = X2 % 25
  170.     If J = 0 Then WaitInput(1)
  171.     If X2 <= 376
  172.         If X2 = 92 Then UseBrush(NULL,255,255,255) DecR = 2 DecG = 2 DecB = 2
  173.         Red = Red - DecR | Green = Green - DecG | Blue = Blue - DecB
  174.         If Red < 0 Then Red = 0
  175.         If Green < 0 Then Green = 0
  176.         If Blue < 0 Then Blue = 0
  177.             UsePen(SOLID,2,Red,Green,Blue)
  178.         If X2 = 304 Then DecR = -16 | DecG = -16 | DecB = -16
  179.         If X2 = 318 Then DecR = 8 | DecG = 8 | DecB = 8
  180.         If X2 = 376 Then DecR = 0 | DecG = 0 | DecB = 0
  181.         GoSub South_cross 
  182.     Endif
  183.     If X2 = 380 Then UsePen(SOLID,4,Red,Green,Blue) Incr = 4      
  184.     If X2 = 400 Then UsePen(SOLID,5,Red,Green,Blue) Incr = 5     
  185.     If X2 = 430 Then UsePen(SOLID,7,Red,Green,Blue) Incr = 7     
  186.     If X2 = 479 Then UsePen(SOLID,9,Red,Green,Blue) Incr = 9     
  187.     If X2 < 610 Then Goto Test_Loop_BB
  188.     Return
  189.  
  190.  
  191. {======================================================================}
  192. Draw_Tiny_Bang:
  193.     UsePen(SOLID,1,255,255,255)
  194.     UseBrush(SOLID,255,255,0)
  195.     UseBrush(NULL,0,0,0)
  196. Tiny_Bang_Loop_W:
  197.     DrawEllipse(X1,Y1,X2,Y2)
  198.     X1 = X1 - 1      Y1 = Y1 - 1  
  199.     X2 = X2 + 1      Y2 = Y2 + 1
  200.     Red = Red - 16   Green = Green - 16 Blue = Blue - 16
  201.     UsePen(SOLID,1,Red,Green,Blue)
  202.     W = X2 % 5
  203.     If W = 0 
  204.        If GoFast <> 1 Then WaitInput(1)
  205.     Endif
  206.     If X2 <= Terminate Then Goto Tiny_Bang_Loop_W
  207.  
  208.     Return
  209.  
  210.  
  211. {======================================================================}
  212. Draw_Yellow_Eclipse:
  213.     UsePen(SOLID,1,255,255,0)
  214.     UseBrush(SOLID,0,0,0)
  215.     DrawEllipse(20,20,80,80)
  216.     UseBrush(NULL,0,0,0)
  217.     X1 = 20 Y1 = 20  X2 = 80   Y2 = 80
  218.     Red = 255 Green = 255
  219. Test_Loop_Y:
  220.     DrawEllipse(X1,Y1,X2,Y2)
  221.     X1 = X1 - 1      Y1 = Y1 - 1  
  222.     X2 = X2 + 1      Y2 = Y2 + 1
  223.     Red = Red - 5   Green = Green - 5
  224.     UsePen(SOLID,1,Red,Green,0)
  225.     W = X2 % 5
  226.     If W = 0 Then WaitInput(1)
  227.     If X2 < 125 Then Goto Test_Loop_Y
  228.     Return
  229.  
  230. {======================================================================}
  231. Draw_White_Eclipse:
  232.     UsePen(SOLID,1,255,255,255)
  233.     UseBrush(SOLID,0,0,0)
  234.     DrawEllipse(20,20,80,80)
  235.     UseBrush(NULL,0,0,0)
  236.     X1 = 20 Y1 = 20  X2 = 80   Y2 = 80
  237.     Red = 255 Green = 255 Blue = 255
  238. Test_Loop_W:
  239.     DrawEllipse(X1,Y1,X2,Y2)
  240.     X1 = X1 - 1      Y1 = Y1 - 1  
  241.     X2 = X2 + 1      Y2 = Y2 + 1
  242.     Red = Red - 5   Green = Green - 5 Blue = Blue - 5
  243.     UsePen(SOLID,1,Red,Green,Blue)
  244.     W = X2 % 5
  245.     If W = 0 Then WaitInput(1)
  246.     If X2 < 125 Then Goto Test_Loop_W
  247.     Return
  248.  
  249. {======================================================================}
  250. Draw_Red_Eclipse:
  251.     UsePen(SOLID,1,255,0,0)
  252.     UseBrush(SOLID,0,0,0)
  253.     DrawEllipse(20,20,80,80)
  254.     UseBrush(NULL,0,0,0)
  255.     X1 = 20 Y1 = 20  X2 = 80   Y2 = 80
  256.     Red = 255 Green = 255 Blue = 255
  257. Test_Loop_R:
  258.     DrawEllipse(X1,Y1,X2,Y2)
  259.     X1 = X1 - 1      Y1 = Y1 - 1  
  260.     X2 = X2 + 1      Y2 = Y2 + 1
  261.     Red = Red - 5
  262.     UsePen(SOLID,1,Red,0,0)
  263.     W = X2 % 5
  264.     If W = 0 Then WaitInput(1)
  265.     If X2 < 125 Then Goto Test_Loop_R
  266.     Return
  267.  
  268. {======================================================================}
  269. Draw_Bl_Ell:
  270.     X1 = -200  Y1 = 170
  271.     X2 = 700   Y2 = 560
  272.     Blue = 255
  273.     UsePen(SOLID,1,0,96,Blue)
  274.     UseBrush(SOLID,0,96,Blue)
  275.     DrawEllipse(-200,170,700,560)
  276.     UseBrush(NULL,0,0,Blue)
  277.     UsePen(SOLID,1,0,0,Blue)
  278.  
  279. StartLoop_0:
  280.     Blue = Blue - 4
  281.     UsePen(SOLID,1,0,0,Blue)
  282.     X1 = X1 - 1      Y1 = Y1 - 1  
  283.     X2 = X2 + 1      Y2 = Y2 + 1
  284.     DrawEllipse(X1,Y1,X2,Y2)
  285.     If Y2 < 619 Then Goto StartLoop_0
  286. EndLoop_0:
  287.     GoSub South_cross
  288.     Return
  289.  
  290. DrawTitle:
  291.         UseFont("Arial",31,69,BOLD,ITALIC,NOUNDERLINE,255,0,0)
  292.     DrawText(193,33,"PiXCL 5.0")
  293.     DrawText(192,32,"PiXCL 5.0")
  294.     DrawText(191,31,"PiXCL 5.0")
  295.         UseFont("Arial",31,69,BOLD,ITALIC,NOUNDERLINE,255,255,0)
  296.     DrawText(190,30,"PiXCL 5.0")
  297.         UseFont("Arial",13,19,BOLD,ITALIC,NOUNDERLINE,255,0,0)
  298.     DrawText(191,121,"The Rapid  Graphical")
  299.     DrawText(191,141,"Programmer Toolkit")
  300.         UseFont("Arial",13,19,BOLD,ITALIC,NOUNDERLINE,255,255,0)
  301.     DrawText(190,120,"The Rapid  Graphical")
  302.     DrawText(190,140,"Programmer Toolkit")
  303.  
  304.         UseFont("Arial",9,15,BOLD,ITALIC,NOUNDERLINE,255,255,255)
  305.     DrawText(200,170,"for Windows NT4/2000")
  306.     DrawText(220,185,"and Windows 95/98/ME")
  307.  
  308.     Return
  309.  
  310. DrawTitleLite:
  311.         UseFont("Arial",31,69,BOLD,ITALIC,NOUNDERLINE,128,0,0)
  312.     DrawText(193,33,"PiXCL 5.0")
  313.     DrawText(192,32,"PiXCL 5.0")
  314.     DrawText(191,31,"PiXCL 5.0")
  315.         UseFont("Arial",31,69,BOLD,ITALIC,NOUNDERLINE,128,128,0)
  316.     DrawText(190,30,"PiXCL 5.0")
  317.         UseFont("Arial",13,19,BOLD,ITALIC,NOUNDERLINE,128,0,0)
  318.     DrawText(191,121,"The Rapid  Graphical")
  319.     DrawText(191,141,"Programmer Toolkit")
  320.         UseFont("Arial",13,19,BOLD,ITALIC,NOUNDERLINE,128,128,0)
  321.     DrawText(190,120,"The Rapid  Graphical")
  322.     DrawText(190,140,"Programmer Toolkit")
  323.  
  324.         UseFont("Arial",9,15,BOLD,ITALIC,NOUNDERLINE,128,128,128)
  325.     DrawText(200,170,"for Windows NT4/2000")
  326.     DrawText(220,185,"and Windows 95/98/ME")
  327.  
  328.     Return
  329.  
  330.  
  331. {====================================================}
  332. South_cross:
  333.     UseFont("WingDings",11,17,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  334.     DrawText(115,80,"¼")
  335.     DrawText(210,9,"¼")
  336.     UseFont("WingDings",11,17,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  337.     DrawText(154,7,"¼")
  338.     UseFont("WingDings",9,13,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  339.     DrawText(204,58,"¼")
  340.     UseFont("WingDings",9,13,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  341.     DrawText(166,42,"¼")
  342.     UseFont("Arial",3,9,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  343.     DrawText(370,7,".")
  344.     UseFont("WingDings",5,9,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  345.     DrawText(106,42,"¼")
  346.     UseFont("WingDings",3,7,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  347.     DrawText(286,38,"¼")
  348.     UseFont("WingDings",5,9,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  349.     DrawText(310,23,"¼")
  350.     UseFont("Arial",3,9,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  351.     DrawText(198,56,".")
  352.     UseFont("Arial",3,9,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  353.     DrawText(243,76,".")
  354.     DrawText(145,42,".")
  355.     UseFont("Arial",7,13,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  356.     DrawText(178,16,".")
  357.     DrawText(145,32,".")
  358.     DrawText(188,16,".")
  359. Return
  360. {====================================================}
  361. Satelite:
  362.     UsePen(SOLID,1,255,255,255)
  363.     Abc = 14 Ord = 2
  364.     XC = 400  YC = 80 St = 1
  365.     Gray = 255  
  366.     UseBrush(SOLID,255,Gray,Gray)
  367.     UsePen(SOLID,1,255,Gray,Gray)
  368.  
  369. Dec:    XC = XC - Abc
  370.     YC = YC + Ord
  371.     St = St + 1 
  372.     
  373.     XC_ = XC + St   YC_ = YC + St
  374.     
  375.     DrawEllipse(XC,YC,XC_,YC_)
  376.     If YC > 80 Then  Set Gray = Gray - 6
  377.     If YC > 120 Then  Set Gray = Gray - 6
  378.     UsePen(SOLID,1,255,Gray,Gray)
  379.     UseBrush(SOLID,255,Gray,Gray)
  380.     
  381.     If YC > 40 Then Goto Trail
  382.     UsePen(SOLID,0,0,0,0)
  383.     UseBrush(SOLID,0,0,0)
  384.     DrawEllipse(XC,YC,XC_,YC_)
  385.     Goto Chck
  386. Trail:
  387.     XCB = XC - 1 YCB = YC - 1 
  388.     XCB_ = XC_ - 1 YCB_ = YC_ - 1
  389.     If GoFast <> 1 Then WaitInput(100)
  390.     DrawEllipse(XCB,YCB,XCB_,YCB_)
  391. Chck:    If YC < 200 Then Goto Dec
  392. Return